package model

// Auction 拍卖状态
type Auction struct {
	DCI           string `gorm:"type:varchar(90);primarykey;comment:'作品数字指纹'"`
	Seller        string `gorm:"type:varchar(90);comment:'出售方地址'"` // 出售方地址
	BlockNumber   uint64 `gorm:"comment:'创建拍卖事件的区块'"`
	BlockTime     uint64 `gorm:"not null;comment:'作品创建的时间'"`
	Deadline      string `gorm:"comment:'结束时间'"` //
	ReservePrice  string `gorm:"comment:'起拍价'"`
	HighestBidder string `gorm:"type:varchar(90);comment:'最高出价者地址'"` // 最高出价者地址
	HighestBid    string `gorm:"comment:'最高出价'"`                     // 最高出价
}

// AuctionEvent 拍卖出售事件记录
type AuctionEvent struct {
	TxHash      string `gorm:"primarykey;type:varchar(90);comment:'交易哈希'"`
	DCI         string `gorm:"type:varchar(90);index;not null;comment:'作品数字指纹'"`
	From        string `gorm:"type:varchar(90);not null;comment:'事件调用方'"` // create 出售方 finish 出售方或最高出价的购买方 bid 购买方
	Value       string `gorm:"type:varchar(90);not null;comment:'价格'"`    // create 起拍价 bid 出价 finish 成交价格
	EventName   string `gorm:"type:varchar(10);not null;comment:'事件类型'"`  // 类型 create:创建 finish:结束拍卖 bid:买方出价
	BlockNumber uint64 `gorm:"not null;comment:'区块高度'"`
	BlockTime   uint64 `gorm:"not null;comment:'区块时间'"`
}
